闲扯
还是没有学到 $AC$ 自动机的精髓,不过倒是学到了一种不错的解决通配符的 $dp$ 方法(不过是单次 $O(n^2)$ 的)。
题面
Solution
我们可以设计一个 $dp_{i,j}$ 表示原串匹配到了 $i$ ,模式串匹配到了 $j$ 是否可行。
进行分类讨论,用 $t$ 表示原串, $s$ 表示模式串。
如果 $t_i=*$ ,那么我们可以将它看做是 $k(k\in\Z)$ 个 $?$ 。
所以我们有如下方程:
分别表示这个 $*$ 用作一个空串和分出了一个 $?$ 。
否则,如果 $t_i=?$ 或者 $t_i=s_j$ ,我们有:
初始 $dp_{0,0}=1$ ,最后如果 $dp_{lent,lens}=1$ ,则表示能够匹配成功。
Code
1 |
|